package com.css.openapi.BO.fxdw;


import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import java.math.BigDecimal;

/**
 * @description: 业务类型明细BO
 * @Title: YwddmxBO
 * @Author xlw
 * @Package com.invoice.tcc.BO.fxdw
 * @Date 2024/11/19 15:52
 */
@NoArgsConstructor
@Data
public class YwddmxBO {


    /**
     * 项目名称
     */
    @NotBlank(message = "项目名称不能为空")
    private String xmmc;

    /**
     * 商品和服务税收分类合并编码
     */
    @NotBlank(message = "商品和服务税收分类合并编码不能为空")
    private String sphfwssflhbbm;

    /**
     * 规格型号
     */
    private String ggxh;

    /**
     * 单位
     */
    private String dw;

    /**
     * 数量
     */
    @Digits(integer = 8, fraction = 2, message = "数量格式错误")
    @Positive(message = "数量必须为正数")
    private BigDecimal sl;

    /**
     * 单价
     */
    @Digits(integer = 12, fraction = 6, message = "单价格式错误")
    @Positive(message = "单价必须为正数")
    private BigDecimal dj;

    /**
     * 税率
     */
    @NotNull(message = "税率不能为空")
    @Digits(integer = 1, fraction = 2, message = "税率格式错误")
    @Range(max = 1, min = 0, message = "税率必须大于等于0且小于1")
    private BigDecimal slv;

    /**
     * 金额
     * 税费承担方01时则为含税金额，02时为不含税金额
     */
    @Digits(integer = 10, fraction = 2, message = "金额格式错误")
    @Positive(message = "金额必须为正数")
    private BigDecimal je;
}
